package cn.nawang.ebeim.api.service.impl;

import java.util.Date;
import java.util.List;
import java.util.Random;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.nawang.ebeim.api.comm.PageList;
import cn.nawang.ebeim.api.comm.Pages;
import cn.nawang.ebeim.api.domain.BackupLog;
import cn.nawang.ebeim.api.repository.BackupLogRepository;
import cn.nawang.ebeim.api.repository.impl.BackupLogQueryRepositoryImpl;
import cn.nawang.ebeim.api.service.BackupLogService;
import cn.nawang.ebeim.api.utils.Util;

/**
 * @ClassName: BackupLogServiceImpl
 * @Description: 备份日志业务实现层
 * @author 张建峰
 * @date 2015年8月7日 下午3:07:37
 * @version v1.0
 */
@Service("backupLogService")
public class BackupLogServiceImpl implements BackupLogService {
  private static final Logger LOG = LoggerFactory.getLogger(BackupLogServiceImpl.class);

  @Autowired
  private BackupLogRepository backupLogRepository;
  @Autowired
  BackupLogQueryRepositoryImpl backupLogQueryRepositoryImpl;
  

  /**
   * @author 张建峰
   * @Description: 保存
   * @param @param backupLog
   * @date 2015年9月22日下午2:32:06
   *
   * @修改人 张建峰
   * @修改日期
   */
  @Override
  public void save(BackupLog backupLog) {
    
    backupLog.setId("BL-"+new Date().getTime()+"-"+new Random().nextInt(1000));
    backupLogRepository.save(backupLog);
    
  }

  /**
   * @author 张建峰
   * @Description: 更新
   * @param @param backupLog
   * @date 2015年9月22日下午2:32:06
   *
   * @修改人 张建峰
   * @修改日期
   */
  @Override
  public void update(BackupLog backupLog) {

    try {
      BackupLog backupLogDatabase = backupLogRepository.findOne(backupLog.getId());
      backupLog = (BackupLog) Util.comparisonObject(backupLog, backupLogDatabase);
      backupLogRepository.save(backupLog);
    } catch (Throwable e) {
      e.printStackTrace();
    }
    
  }
  
  public void delete(BackupLog log){
    List<BackupLog> logs = backupLogQueryRepositoryImpl.findByBackupLog(log);
    backupLogRepository.delete(logs);
  }

  /**
   * @author 张建峰
   * @Description: 根据属性查询
   * @param @param property
   * @param @param value
   * @param @return
   * @date 2015年9月22日下午2:32:06
   *
   * @修改人 张建峰
   * @修改日期
   */
  @Override
  public List<BackupLog> findByProperty(String property, Object value) {
    return backupLogQueryRepositoryImpl.findByParam(property, value);
  }

  /**
   * @author 张建峰
   * @Description: 分页查询
   * @param @param backupLog
   * @param @param page
   * @param @return
   * @date 2015年9月22日下午2:32:06
   *
   * @修改人 张建峰
   * @修改日期
   */
  @Override
  public PageList findByPage(BackupLog backupLog, Pages page) {
    return backupLogQueryRepositoryImpl.findByPage(backupLog, page);
  }

  /**
   * @author 张建峰
   * @Description: 多条件查询
   * @param @param backupLog
   * @param @return
   * @date 2015年9月22日下午2:59:22
   *
   * @修改人 张建峰
   * @修改日期
   */
  @Override
  public List<BackupLog> findByBackupLog(BackupLog backupLog) {
    return backupLogQueryRepositoryImpl.findByBackupLog(backupLog) ;
  }

  @Override
  public PageList findByDsIdAndStatus(Pages page) {
    return backupLogQueryRepositoryImpl.findByDsIdAndStatus(page);
  }

  @Override
  public String findByDsTypeAndCreateUserId(String dsType, String createUserId) {
    return backupLogQueryRepositoryImpl.findByDsTypeAndCreateUserId(dsType, createUserId);
  }
  

}
